﻿#pragma once

#include "acis/dcl_cstr.h"
#include "acis/dcl_kern.h"
#include "acis/acis.hxx"
#include "acis/api.hxx"
#include <boost/multiprecision/cpp_dec_float.hpp>
using namespace boost::multiprecision;
/**
 * @brief		求解定义域上单变量方程的根
 * @details		此接口测试一元1-8次多项式，需从law树中获取方程的系数,求出的根需满足所给定义域，且无重复根
 * @param[in]	input_law	输入方程（law树形式）
 * @param[in]	start	定义域左边界
 * @param[in]	end		定义域右边界
 * @param[out]	size	用于返回根的个数
 * @param[out]	answer	用于返回根的结果
 * @return		函数执行结果
 * @note		此接口与ACIS中 kernapi 文件中的 api_nroots_of_law 进行对比
 */
DECL_KERN outcome answer_api_nroots_of_law(law* input_law, double start, double end, int* size, double** answer);
DECL_KERN outcome answer_api_nroots_of_coef(cpp_dec_float_50 coef[], cpp_dec_float_50 start, cpp_dec_float_50 end, int* size, cpp_dec_float_50** answer, int N);
